package com.itheima.service.impl;

import com.itheima.dao.IUserDao;
import com.itheima.dao.impl.UserDaoImpl;
import com.itheima.dao.impl.UserOracleDaoImpl;
import com.itheima.factory.BeanFactory;
import com.itheima.service.IUserService;

/**
 * 如何做到修改了dao的实现，service不用改代码？
 * 1. 先看依赖关系
 *    service依赖了dao的接口、实现类
 *    这里是否可以减少sevice对dao的依赖？ 尽量让sevice不去依赖dao实现类。
 */
public class UserServiceImpl implements IUserService{

    // 1. 创建dao对象    (控制正转)
    //private IUserDao userDao = new UserDaoImpl();
    //private IUserDao userDao = new UserOracleDaoImpl();

    // 通过工厂类创建dao对象  (控制反转)
    private IUserDao userDao =  BeanFactory.getBean("userDao",IUserDao.class);

    @Override
    public void save() {
        //2. 调用dao对象的方法
        userDao.save();
    }
}
